package com.apigen.platform.service;

import com.apigen.platform.dto.CodeGenerationRequest;

import java.util.Map;

/**
 * 代码生成服务接口
 *
 * @author API Generator Platform
 * @since 2024-09-24
 */
public interface ICodeGenerationService {

    /**
     * 生成项目代码
     *
     * @param request 生成请求参数
     * @return 生成结果（包含下载链接等信息）
     */
    Map<String, Object> generateProject(CodeGenerationRequest request);

    /**
     * 预览生成的代码
     *
     * @param request 生成请求参数
     * @return 代码预览信息
     */
    Map<String, Object> previewCode(CodeGenerationRequest request);

    /**
     * 获取支持的框架类型
     *
     * @return 框架类型列表
     */
    Map<String, Object> getSupportedFrameworks();

    /**
     * 获取代码模板配置
     *
     * @param frameworkType 框架类型
     * @return 模板配置信息
     */
    Map<String, Object> getTemplateConfig(String frameworkType);

    /**
     * 验证生成配置
     *
     * @param request 生成请求参数
     * @return 验证结果
     */
    Map<String, Object> validateConfig(CodeGenerationRequest request);

    /**
     * 获取生成历史记录
     *
     * @param projectId 项目ID
     * @param current 当前页
     * @param size 每页大小
     * @return 分页历史记录
     */
    Map<String, Object> getGenerationHistory(Long projectId, Long current, Long size);

    /**
     * 下载生成的代码包
     *
     * @param generationId 生成记录ID
     * @return 文件下载信息
     */
    Map<String, Object> downloadGeneratedCode(Long generationId);
}











